package com.ddstation.statement.service;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.ddstation.home_page.model.HpCommonParModel;
import com.ddstation.statement.model.*;

/**
 * 统计报表service
 * 
 * @author zhengxiaobin
 * @date 2019年8月14日
 */
public interface StatisticsStatementService {
	// 按 镇·街道 统计
	public List<IllegalInstitutionModel> searchIllegalInstitutionSum(
            CATALOG_ENUM _type, SearchParModel _in);
	// 按 违规种类 统计
	public List<IllegalTypeModel> searchIllegalTypeSum(CATALOG_ENUM _type, SearchParModel _in);
	
	/**
	 * 查询卫监所下所有的镇级
	 * */
	public List<IllegalInstitutionModel> searchIllegalInstitution(String invsInstitutionId);
	
	/**
	 * 首页：查询期间内异常机构的数量
	 * */
	public int getAbnormalInstitutionCnt(SearchParModel _in);

	/**
	 * 查询饼图信息
	 * @param invsInstitutionId 卫监机构ID
	 * @param startDt 开始日期
	 * @param endDt 结束日期
	 * @return 查询结果
	 */
	public PieStatisticDisplayModel getPieStatistic(String invsInstitutionId, Date startDt, Date endDt);

	/**
	 * 查询诊所统计信息
	 * @param invsInstitutionId 卫监机构ID
	 * @param startDt 开始日期
	 * @param endDt 结束日期
	 * @return 查询结果
	 */
	public List<TableStatisticItemModel> getClinicStatistic(String invsInstitutionId, Date startDt, Date endDt);

	/**
	 * 查询异常统计信息
	 * @param invsInstitutionId 卫监机构ID
	 * @param startDt 开始日期
	 * @param endDt 结束日期
	 * @return 查询结果
	 */
	public List<TableStatisticItemModel> getErrorStatistic(String invsInstitutionId, Date startDt, Date endDt);

	/**
	 * 查询统计报表数据
	 * @param _p
	 * @return
	 */
	public HashMap getStatisticsData(HpCommonParModel _p);
}
